const nums = [2,7,11,15], target = 9
// 输出：[0,1]
// 解释：因为 nums[0] + nums[1] == 9 ，返回 [0, 1] 。


var twoSum = function(nums, target) {
  
  let map = {}; // 哈希map key存数组每一项 value存下标
  for (let i = 0; i < nums.length; i++) {
    const e = nums[i];
    const remainder = target - e;
    if (map[`${remainder}`] !== undefined) {// 要考虑0的问题
      // 如果余数在哈希表中存在 则返回下标
      return [map[remainder],i];
    }
    // 不存在 则存数组的项到map中
    map[e] = i;
  }

};

console.log(twoSum(nums,target));